System firmware is often a critical aspect of computer systems. For example, firmware is often developed for a particular hardware device (or configuration of devices) to enable the hardware device(s) to be included in a given platform. System firmware generally has several responsibilities, which, as described further hereafter, may include responsibilities during the boot-up process of a system, as well as during the system's run-time.
The complexity, capacity, and intelligence of computer systems is ever evolving. Often, the rate at which the complexity of a computer system evolves results in difficulty in developing the necessary firmware for the system. For example, as new hardware is developed and/or as new functional capabilities are developed into a hardware device, new firmware is often required for such hardware. System firmware is traditionally system specific, and, as the hardware of a system evolves, new firmware that is very specific to the evolved hardware is developed. Further, firmware is typically very difficult to write. It generally does not have a rich development environment, debuggers, or an integrated development environment, such as is available for developing user-level (non-privileged) application software such as databases, word-processors and video games, as examples. And, individuals skilled at developing system firmware are rare.
Often a desire exists for rapidly evolving a system. This results in a need to rapidly produce firmware for the evolved system, but a relatively small number of people may be available within a business for developing the needed firmware. Accordingly, a need exists for a system and method for efficiently developing system firmware.